Unityの地味に勤勉な挙動
概要
特に必要の無い地味な知識を提供。
importからのimportは発生しない
Unityに画像とかを放り込んで発生する読み込み処理について、
まあ適当にimportとか呼称してるんだけど、
たとえばPostProcessor系の処理で、読み込み処理中にファイルを作ったりした場合、
その瞬間では読み込みが発生しない。 つまり.metaファイルが作られない状態が形成できる。
ネストとか無限ループするのを避けてるっぽい。
安全。
importの動作
Project Settings で visible meta files を選んでいる場合は、
次のような動作が確認できる。
・.metaファイルが存在していない場合、読み込みが発生する
・読み込み後、.metaファイルが作成される
・内部DBにも登録される(たぶん.metaファイル内でのGUIDとフォルダパスをキーにしてる)
importのタイミング
importの発動するタイミングは以下の通り
・Unity起動中
・Unity起動時
放り込み方による差
.metaファイルが無いものに対して、DBへの登録と読み込み、.meta作成が行われる。
.metaファイルがあったとしても、DBへの登録が存在しない場合がありえる。
たとえばimport後のフォルダをAssetsフォルダ外部に持ち出してUnityを終了し、
Unity起動時にAssets以下の別フォルダに放り込んだ場合。
その場合は、.metaファイルの情報をもとに、importをスキップして読み込んでDB登録してくれるケースと、
GUIDだけが書き変わってimportをスキップして読み込んでDB登録してくれるケースと、
importのスキップが発生せず読み直しが発生するケースがある。
GUIDだけが書き変わるケースだと
The GUID for Assets/AssetRails/temp/Resources/prefabricate/chara/idol_01 is already in use by Assets/AssetRails/temp/Resources/import/chara/idol_01. Assigning a new guid.
って言われる。